Conversation
vladkats
left a comment
There was a problem hiding this comment.
Почти все методы реализованы некорректно. Пока принять не могу
| @@ -0,0 +1,44 @@ | |||
| package ru.sber.mironov; | |||
|
|
|||
| public class Car { | |||
There was a problem hiding this comment.
Не переопределил equals/hashcode
| private final int power; | ||
| private final int ownerId; | ||
|
|
||
| public Car(long carId, String brand, String modelName, int maxVelocity, int power, int ownerId) { |
There was a problem hiding this comment.
разнести по строкам, читается тяжело когда много аргументов у конструктора в одну строку
|
|
||
| import static java.util.stream.Collectors.toList; | ||
|
|
||
| public interface Garage { |
There was a problem hiding this comment.
Реализовать интерфейс это значит написать класс реализующий интерфейс, а не сделать дефолтные методы в интерфейсе и константы вместо полей
| HashMap<Owner, ArrayList<Car>> mapOwnerToCars = new HashMap<>(); | ||
| HashMap<Car, Owner> mapCarToOwner = new HashMap<>(); | ||
| HashMap<String, ArrayList<Car>> mapBrandToCar = new HashMap<>(); | ||
| HashMap<Long, Car> cars = new HashMap<>(); | ||
| HashMap<Long, Owner> owners = new HashMap<>(); |
There was a problem hiding this comment.
использовать интерфейс вместо реализации при объявлении полей.
| ArrayList<Car> sorted = new ArrayList<>(); | ||
| for (Car car : cars.values()) { | ||
| sorted.add(car); | ||
| sorted.sort(Comparator.comparingInt(Car::getMaxVelocity)); |
There was a problem hiding this comment.
сортировка минимум O(n log n), а надо меньше чем за O(n)
There was a problem hiding this comment.
if (sorted.size() > 3) {
sorted.remove(0);
}
Там дальше идет этот код, который не даёт массиву иметь размер больше 3
Значит во врем сортировки мы будем тратить не более константы операций, а именно не более 9 операций. Суммарная сложность никак не O(nlogn).
|
|
||
| @Before | ||
| public void setUpOwnersAndCars() { | ||
| Owner o0 = new Owner(6789, "Anton", "qu", 102); |
There was a problem hiding this comment.
зачем столько исходных данных? Ты не тестишь разные кейсы. А если тестишь, то нужно выносить в отдельный тест каждый кейс.
| HashMap<Long, Owner> owners = new HashMap<>(); | ||
|
|
||
| default Collection<Owner> allCarsUniqueOwners() { | ||
| return mapOwnerToCars.keySet().stream() |
There was a problem hiding this comment.
будет неправильно работать из-за отсутствия equals/hashcode
| * Complexity should be O(1) | ||
| */ | ||
| default Collection<Car> allCarsOfOwner(Owner owner) { | ||
| return mapOwnerToCars.get(owner); |
There was a problem hiding this comment.
будет неправильно работать из-за отсутствия equals/hashcode
| * Complexity should be O(1) | ||
| */ | ||
| default Collection<Car> allCarsOfBrand(String brand) { | ||
| return mapBrandToCar.get(brand); |
There was a problem hiding this comment.
будет неправильно работать из-за отсутствия equals/hashcode
| * | ||
| * @return removed car | ||
| */ | ||
| default Car removeCar(int carId) { |
There was a problem hiding this comment.
будет неправильно работать из-за отсутствия equals/hashcode
No description provided.